![]() 除錯系統及執行除錯系統操作之方法
专利摘要:
本發明揭示除錯系統及執行除錯系統操作之方法。除錯系統,包含除錯模塊。除錯模塊接收包含至少一軟體斷點之應用,當目標系統遇到軟體斷點時,除錯模塊開始處理軟體斷點,決定軟體斷點是否為選擇性軟體斷點,假若決定遇到選擇性軟體斷點,則刪除對所有其他剩餘斷點之指令替換以及於遇到軟體斷點處應用之原始指令之執行,或者刪除對所有其他剩餘斷點之指令替換,並且於遇到軟體斷點處重新安裝該選擇性軟體斷點。 公开号:TW201319802A 申请号:TW101141309 申请日:2012-11-07 公开日:2013-05-16 发明作者:Jeffrey David Zoller;Kenneth Edwin Poole;Vecchio Vincent Michael Del;Zhian Luo 申请人:Mediatek Singapore Pte Ltd; IPC主号:G06F11-00
专利说明:
除錯系統及執行除錯系統操作之方法 本發明係有關於軟體斷點處理領域,特別是有關於通過在特定條件下刪除指令替換(instruction replacement)與執行來提高軟體斷點處理的性能。 一些除錯器,例如GNU計划除錯器(GNU Project debugger,GDB),提供了當處理器停止時,決定如何處理斷點的選項。斷點可留在記憶體中或者自記憶體移除。假若斷點留在記憶體中,並且要求除錯器讀取記憶體中斷點存在的區域,則除錯器在將此區域內容顯示給用戶前,以原始記憶體內容來遮蔽斷點。 本發明通過在特定條件下刪除指令替換與執行來提高處理特定種類斷點的速度及性能,相較於現有技術有了很大進步。 有鑒於此,本發明提供除錯系統及執行除錯系統操作之方法。 根據本發明之一實施例,提供一種除錯系統,包含除錯模塊。除錯模塊接收包含至少一軟體斷點之應用,當目標系統遇到軟體斷點時,除錯模塊開始處理軟體斷點,決定軟體斷點是否為選擇性軟體斷點,假若決定遇到選擇性軟體斷點,則刪除對所有其他剩餘斷點之指令替換以及於遇到軟體斷點處應用之原始指令之執行,或者刪除對所有其他剩餘斷點之指令替換並且於遇到軟體斷點處重新安裝該選擇性軟體斷點。 根據本發明之另一實施例,提供執行除錯系統之操作之方法,包含:提供應用以執行;使用除錯模塊來接收包含至少一軟體斷點之該應用,當目標系統遇軟體斷點時,除錯模塊開始處理軟體斷點,決定軟體斷點是否為選擇性軟體斷點,假若決定遇到選擇性軟體斷點,則刪除對所有其他剩餘斷點之指令替換以及於遇到選擇性軟體斷點處應用之原始指令之執行,或者刪除對所有其他剩餘斷點之指令替換並且於遇到選擇性軟體斷點處重新安裝該選擇性軟體斷點。 本發明所提出之除錯系統及執行除錯系統操作之方法,其通過在決定遇到選擇性軟體斷點時刪除指令替換來提高處理特定種類斷點的速度及性能。 本發明提供一種基於斷點的個別屬性(individual attribute),而不是影響所有斷點的總體選項(global option)來處理特定軟體斷點之技術方法。特別地,本發明依靠兩種軟體斷點應用之特定場景來確定如何繼續進行以及如何處理指令集(instruction set)中剩餘的斷點。上述指令集為所提供之待處理指令集。除錯器基於遇到哪一個斷點場景來決定如何繼續進行對所加載的應用中其他剩餘斷點之處理。 第1圖為依本發明一實施例,顯示所使用之除錯系統2之示意圖。除錯系統2包括主機4。主機4包含由用戶控制的計算機,一般為具有處理器、處理器記憶體、硬碟儲存器(hard disk storage)、以及其他週邊裝置(peripheral device)之個人計算機。主機4使用其處理器以及處理器記憶體來完成耦接於除錯介面10之除錯器8。除錯器8與除錯介面10可視為運行於除錯模塊中。除錯器8為運行於主機4上之軟體應用,用於控制目標系統6,並且顯示資訊來允許用戶診斷並且分析待運行於目標系統6上之應用代碼。除錯介面10為目標系統6與運行於主機4上之除錯器8之間的介面模塊。 目標系統6執行包括軟體斷點之所加載之應用。軟體斷點為一種特別指令,當執行軟體斷點時會使得處理器進入除錯模式,除錯模式中除錯器8具有控制權。一般地,通過保留應用之原始指令,並且將其替換為特別之斷點指令來設置軟體斷點。除錯器還支援自動斷點。自動斷點係基於所加載之應用中預定義標記(predefined label)之存在而被自動設置之斷點。 假若存在特定預定義標記,除錯器8或者除錯介面10在這些位置自動設置斷點,而無需用戶明確地進行設置。當發現自動或者條件性的(conditional)軟體斷點(即選擇性軟體斷點)時,除錯器8或者除錯介面10基於位址、屬性、以及可能來源於處理器自身之資料評估特定條件,並且無需與用戶之交互動作就決定處理器是否應該保持停止狀態亦或自動返回運行狀態。 目前之現有技術中,當在目標系統中觸發斷點事件(breakpoint event)時,除錯器或者除錯介面基於事件發生之位址來決定如何處理此斷點事件。假若斷點為自動或者條件性的斷點,則除錯器8或者除錯介面10評估斷點之條件,並且可選擇地(optionally)於執行一些特定動作後,不受用戶干預地將處理器設置為再次運行。每當發現一個斷點且處理器停止,則自記憶體移除系統中之所有其他斷點,並且以所保存之其原始指令來替換。假若將處理器設置為再次運行,則必須首先於指令之前停止的地方執行單步(single step)指令,以越過(get beyond)目前斷點之位址,接著將所有斷點寫入記憶體,並且再次保存原始指令以待後續使用。接著,可將處理器設置為運行。 本發明識別兩種斷點使用場景,第一斷點使用場景為斷點位於當被執行時,對目標系統之處理器狀態沒有副作用之指令上。例如,位於無操作(No Operation,以下稱為NOP)指令上。當遇到位於NOP指令上之斷點時,不再需要自記憶體中移除斷點,並且可跳過單步指令以加快斷點處理。這是因為NOP指令作為斷點之佔位(placeholder),於不被執行時,對應用沒有副作用。第二斷點使用場景為使用簡化斷點處理之輕量斷點(Lightweight Breakpoint,以下稱為LWBP)。一般地,當遇到斷點並且處理器停止,則自記憶體移除系統中所有其他斷點,並且以其原始指令替換。當遇到標示為LWBP之斷點時,除錯器/除錯介面僅移除LWBP,並且保持等待,直到做出於自記憶體移除系統中所有其他斷點前確實保持處理器停止之決定。假若於處理LWBP之後,決定應該將處理器設置為再次運行,則僅需要重新安裝LWBP。自動斷點亦可為LWBP,但是並非所有LWBP都是自動斷點。 第2圖為顯示於執行所加載之應用期間,當發現NOP指令上之軟體斷點時,本發明之除錯系統2所執行步驟之處理流程圖。處理流程16中,如步驟18所示,加載之應用具有於所選擇之位址設置之斷點(包含自動斷點),即斷點(包含自動斷點)設置於所選擇之位址。主機4之處理器執行除錯器8。於目標系統6上執行應用。如步驟20所示,當執行於目標系統6上之應用執行軟體斷點指令時,觸發斷點,即處理器運行,並且觸發斷點事件。由此如步驟22所示,啟動除錯器8來評估斷點之位址與屬性。除錯器8啟動斷點處理器(handler)來執行處理流程24所示之處理斷點之動作。如步驟26所示,自除錯器8接收資訊之後,斷點處理器決定原始指令是否為NOP指令。假若決定原始指令係NOP指令,則如步驟28所示,個人計算機不降速(decrement),並且如步驟30所示,不卸載任何剩餘斷點(即刪除對所有其他剩餘斷點之指令替換與於遇到該選擇性軟體斷點處該應用之原始指令之執行)。假若決定斷點並非NOP指令,則如步驟32所示,個人計算機降速,並且如步驟34所示,卸載所有斷點。 此外,步驟35決定斷點是否為自動斷點,以及是否滿足允許除錯器8將處理器設置為再次運行之條件。假若處理器待設置為再次運行則需要完成處理流程36所示任務,並且假若處理器於除錯器8之控制下待保持停止,則需要完成處理流程38所示步驟。具體地,處理流程36顯示,假若自動斷點位於NOP指令上,則如步驟40所示,不執行目前的單步指令,並且如步驟42所示,沒有斷點重新安裝。步驟48中將處理器設置為運行。如處理流程36所示,假若決定自動斷點不位於NOP指令上,則如步驟44所示接著執行目前的單步指令並且如步驟46所示,重新安裝所有斷點。再次說明,步驟48中將處理器設置為運行。處理流程38顯示於除錯器8之控制下,當要保持處理器停止時所需步驟。此狀況下,假若斷點位於NOP指令上,則如步驟50所示,卸載所有斷點。 當遇到位於NOP指令上之斷點時,不再需要移除斷點,並且還可以跳過單步指令,以加快斷點處理,這是因為NOP指令作為斷點之佔位,於不被執行時,對應用沒有副作用。這一點,於重複遇到自動或者條件性斷點,並且除錯器8或者除錯介面10一般地於處理斷點後自動恢復(resume)應用時,特別有用。 第3圖為顯示於執行所加載之應用期間,當遇到LWBP時,本發明之除錯系統2所執行步驟之處理流程圖。處理流程60中,如步驟62所示,加載之應用具有於所選擇之位址設置之斷點(包含自動斷點),即斷點(包含自動斷點)設置於所選擇之位址。主機4之處理器執行除錯器8。於目標系統6上執行應用。如步驟64所示,當於目標系統6上運行之應用執行軟體斷點指令時,觸發斷點,即處理器運行,並且觸發斷點事件。由此如步驟66所示,啟動除錯器8來評估斷點之位址與屬性。除錯器8啟動斷點處理器來執行處理流程68所示之處理斷點之動作。如步驟70所示,斷點處理器使個人計算機降速來決定是否遇到LWBP。假若遇到LWBP,則如步驟72所示,僅卸載LWBP,而不卸載剩餘斷點(即刪除對所有其他剩餘斷點之指令替換),否則,假若遇到的並非LWBP,則如步驟74所示,卸載所有斷點。 此外,步驟76決定斷點是否為自動斷點,以及是否滿足允許除錯器8將處理器設置為再次運行之條件。假若處理器待設置為再次運行則需要完成處理流程78所示任務,並且假若處理器於除錯器8之控制下待保持停止,則需要完成處理流程80所示步驟。具體地,處理流程78顯示,如步驟82所示,執行目前的單步指令。假若斷點為LWBP,則如步驟84所示,僅重新安裝LWBP。步驟88中將處理器設置為運行。如步驟82所示,假若決定自動斷點並非LWBP,則如步驟86所示,重新安裝所有斷點。再次說明,步驟88中將處理器設置為運行。處理流程80顯示,當處理器於除錯器8之控制下待保持停止時所需之步驟。此狀況下,假若斷點為LWBP,則如步驟90所示,卸載所有剩餘斷點。 此場景中,當遇到LWBP時,由於不需要交換所有已安裝斷點,性能得以提高。本實施例中,最初僅將LWBP移除。此外,當除錯器8決定自動將處理器設置為再次運行,性能進一步得到提高。這是因為,無需重新安裝所有斷點,而僅重新安裝LWBP。條件性軟體斷點以及用於文檔輸入/輸出(File I/O)操作之軟體斷點係LWBP能夠提高性能之好範例。 雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。 2‧‧‧除錯系統 4‧‧‧主機 6‧‧‧目標系統 8‧‧‧除錯器 10‧‧‧除錯介面 18、20、22、26、28、30、32、34、35、40、42、44、46、48、50、62、64、66、70、72、74、76、82、84、86、88、90‧‧‧步驟 16、24、36、38、60、68、78、80‧‧‧處理流程 第1圖為依本發明一實施例,顯示所使用之除錯系統之示意圖。 第2圖為顯示於執行所加載之應用期間,當發現NOP指令上之軟體斷點時,本發明之除錯系統所執行步驟之處理流程圖。 第3圖為顯示於執行所加載之應用期間,當遇到LWBP時,本發明之除錯系統所執行步驟之處理流程圖。 2‧‧‧除錯系統 4‧‧‧主機 6‧‧‧目標系統 8‧‧‧除錯器 10‧‧‧除錯介面
权利要求:
Claims (20) [1] 一種除錯系統,包含:一除錯模塊,接收包含至少一軟體斷點之應用,當一目標系統遇到該至少一軟體斷點時,該除錯模塊開始處理該至少一軟體斷點,決定該至少一軟體斷點是否為選擇性軟體斷點,假若決定遇到選擇性軟體斷點,則該除錯模塊刪除對所有其他剩餘斷點之指令替換以及於遇到該選擇性軟體斷點處該應用之原始指令之執行,或者刪除對所有其他剩餘斷點之指令替換並且於遇到該選擇性軟體斷點處重新安裝所遇到之該選擇性軟體斷點。 [2] 如申請專利範圍第1項所述之除錯系統,更包含一主機系統,執行該除錯模塊。 [3] 如申請專利範圍第2項所述之除錯系統,其中該主機系統使用該除錯模塊來控制該目標系統。 [4] 如申請專利範圍第1項所述之除錯系統,其中該除錯模塊包含一除錯器以及一除錯介面。 [5] 如申請專利範圍第1項所述之除錯系統,其中該選擇性軟體斷點位於對該目標系統之處理器之狀態沒有副作用之一指令上。 [6] 如申請專利範圍第5項所述之除錯系統,其中該除錯模塊於決定該目標系統上之該處理器保持停止或者繼續運行之前,保留所有已安裝斷點。 [7] 如申請專利範圍第6項所述之除錯系統,其中該除錯模塊於處理該選擇性軟體斷點後,決定自動將該處理器設置為運行,並且自動恢復執行該應用。 [8] 如申請專利範圍第1項所述之除錯系統,其中該選擇性軟體斷點包含一輕量斷點。 [9] 如申請專利範圍第8項所述之除錯系統,其中該除錯模塊於決定該目標系統上之一處理器保持停止或者繼續運行之前,保留除該輕量斷點之外的所有已安裝斷點。 [10] 如申請專利範圍第9項所述之除錯系統,其中該除錯模塊決定自動將該處理器設置為運行,以重新安裝之該輕量斷點以及其他已安裝斷點來恢復執行該應用。 [11] 一種執行除錯系統之操作之方法,包含:提供一應用以執行;使用一除錯模塊來接收包含至少一軟體斷點之該應用,當一目標系統遇到該至少一軟體斷點時,該除錯模塊開始處理該至少一軟體斷點,決定該至少一軟體斷點是否為選擇性軟體斷點,假若決定遇到選擇性軟體斷點,則該除錯模塊刪除對所有其他剩餘斷點之指令替換以及於遇到該選擇性軟體斷點處該應用之原始指令之執行,或者刪除對所有其他剩餘斷點之指令替換並且於遇到該選擇性軟體斷點處重新安裝所遇到之該選擇性軟體斷點。 [12] 如申請專利範圍第11項所述之執行除錯系統之操作之方法,其中由一主機系統執行該除錯模塊。 [13] 如申請專利範圍第12項所述之執行除錯系統之操作之方法,其中該主機系統使用該除錯模塊來控制該目標系統。 [14] 如申請專利範圍第11項所述之執行除錯系統之操作之方法,其中該除錯模塊包含一除錯器以及一除錯介面。 [15] 如申請專利範圍第11項所述之執行除錯系統之操作之方法,其中該選擇性軟體斷點位於對該目標系統之處理器之狀態沒有副作用之一指令上。 [16] 如申請專利範圍第15項所述之執行除錯系統之操作之方法,其中該除錯模塊於決定該目標系統上之一處理器保持停止或者繼續運行之前,保留所有已安裝斷點。 [17] 如申請專利範圍第16項所述之執行除錯系統之操作之方法,其中該除錯模塊於處理該選擇性軟體斷點後,決定自動將該處理器設置為運行,並且自動恢復執行該應用。 [18] 如申請專利範圍第11項所述之執行除錯系統之操作之方法,其中該選擇性軟體斷點包含一輕量斷點。 [19] 如申請專利範圍第18項所述之執行除錯系統之操作之方法,其中該除錯模塊於決定該目標系統上之一處理器保持停止或者繼續運行之前,保留除該輕量斷點之外的所有已安裝斷點。 [20] 如申請專利範圍第19項所述之執行除錯系統之操作之方法,其中該除錯模塊決定自動將該處理器設置為運行,以重新安裝之該輕量斷點以及其他已安裝斷點來恢復執行該應用。
类似技术:
公开号 | 公开日 | 专利标题 US7992042B2|2011-08-02|Debug support device, and program for directing computer to perform debugging method US7836430B2|2010-11-16|Reversing execution of instructions in a debugger US8910126B2|2014-12-09|Compiling source code for debugging with variable value restoration based on debugging user activity US8752024B2|2014-06-10|Resuming a prior debug session US8806447B2|2014-08-12|Step-type operation processing during debugging by machine instruction stepping concurrent with setting breakpoints US10089126B2|2018-10-02|Function exit instrumentation for tail-call optimized code US9298536B2|2016-03-29|Creating an operating system dump TWI460585B|2014-11-11|除錯系統及執行除錯系統操作之方法 US8756583B2|2014-06-17|Thread-specific event management in a non-stop debugging environment US8701094B2|2014-04-15|Event management in a non-stop debugging environment US8752025B2|2014-06-10|Protecting breakpoints in a software debugger US8225289B2|2012-07-17|Method and system for improved tool interaction with a target US20120151267A1|2012-06-14|System for extending use of a data address break point register to implement multiple watch points KR20080057688A|2008-06-25|비휘발성 메모리를 이용한 운영체계 부팅 방법 CN111208893B|2021-07-06|一种cpu复位的控制方法、系统及存储介质 JP5906789B2|2016-04-20|メッセージ出力制御装置及びメッセージ出力制御方法 US8732721B2|2014-05-20|Method for reducing trap overhead when executing a guest in a virtual machine JP2007213396A|2007-08-23|デバッグシステム、オペレーションシステム、デバッグ方法、プログラム CN111240756A|2020-06-05|应用程序的执行方法、装置、电子设备及存储介质 JP5782389B2|2015-09-24|エミュレーションシステム、エミュレーションシステムの制御方法、エミュレーション装置、プログラム CN109496301A|2019-03-19|嵌入式系统中管理文件的方法、嵌入式设备及其存储介质 JP2012190120A|2012-10-04|メモリダンプ取得装置、メモリダンプ取得方法、およびプログラム JP2006268472A|2006-10-05|フラッシュメモリ上のプログラムデバッグ方法及びデバッグシステム KR20120082254A|2012-07-23|데이터를 노어 플래시에 쓰기 방법
同族专利:
公开号 | 公开日 TWI460585B|2014-11-11| CN103123603B|2016-01-27| US8726244B2|2014-05-13| CN103123603A|2013-05-29| US20130117732A1|2013-05-09|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 EP0992906B1|1998-10-06|2005-08-03|Texas Instruments Inc.|Apparatus and method for software breakpoint in a delay slot| KR100802606B1|2001-04-13|2008-02-13|엘지전자 주식회사|데이터의 천이 상태에 따른 디버깅 장치 및 방법| US7296259B2|2002-09-11|2007-11-13|Agere Systems Inc.|Processor system with cache-based software breakpoints| US7225431B2|2002-10-24|2007-05-29|International Business Machines Corporation|Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture| US7360204B2|2003-05-08|2008-04-15|International Business Machines Corporation|Grouping breakpoints by a criteria| US7383539B2|2003-09-18|2008-06-03|International Business Machines Corporation|Managing breakpoints in a multi-threaded environment| US7581211B2|2004-07-14|2009-08-25|International Business Machines Corporation|Method and apparatus for on demand debugging, tracing, and logging of applications| US7673296B2|2004-07-28|2010-03-02|Hewlett-Packard Development Company, L.P.|Method and system for optional code scheduling| CN101295279B|2007-04-29|2012-05-09|国际商业机器公司|多线程环境下的调试程序的方法和系统| CN101364253A|2007-08-06|2009-02-11|电子科技大学|反恶意程序隐蔽调试引擎与方法| US7962803B2|2008-09-30|2011-06-14|International Business Machines Corporation|Apparatus, system, and method for multi-address space tracing| US8438547B2|2009-05-05|2013-05-07|Freescale Semiconductor, Inc.|Address translation trace message generation for debug| US8386747B2|2009-06-11|2013-02-26|Freescale Semiconductor, Inc.|Processor and method for dynamic and selective alteration of address translation| US20110078350A1|2009-09-30|2011-03-31|Via Technologies, Inc.|Method for generating multiple serial bus chip selects using single chip select signal and modulation of clock signal frequency|US9122792B2|2013-05-17|2015-09-01|International Business Machines Corporation|Step over operation for machine code function calls| US9507691B2|2014-01-10|2016-11-29|International Business Machines Corporation|Conditional component breakpoint setting system and method| US10540253B2|2017-11-30|2020-01-21|International Business Machines Corporation|Breakpoint with specified anchor points|
法律状态:
2020-08-11| MM4A| Annulment or lapse of patent due to non-payment of fees|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US13/293,099|US8726244B2|2011-11-09|2011-11-09|Software breakpoint handling by eliminating instruction replacement and execution under certain conditions| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|